/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package beans;

import java.sql.Date;
import java.util.List;

/**
 *
 * @author pcsijbug
 */
public class BeanProformaCabecera {
    
    private long idProforma;
    private Date fecha;
    private String tipoDocumento; //01 para dni y 02 para ruc
    private String nroDocumento;
    private String razonSocial;
    private String nombres;
    private String tipoComprobante;//01 factura y 02 boleta
    private List listaDetallesProforma;
    
    private int totalProformasDetalle;
    
    
    private double subTotal;
    
    private double totalProformaPago;
    
    private double igv;
    
    
    private boolean afectoDetraccion;
    
    
    
    public void calcularIGV(){
    
        double aux = 0.0;
        aux = this.totalProformaPago/1.18;
        
        this.igv = this.totalProformaPago - aux;
        
    }
    
    public void afectoDetraccion(){
        
        if (totalProformaPago > 700.00){
        
        afectoDetraccion = true;
        }else{
            afectoDetraccion = false;
        }
        
    
    }
    
    public void calcularDetraccion(){
    
        
        
    
    
    }
    
    
    public void calcularTotalPagoProforma(){
    
        this.setTotalProformaPago(0.0);
        
        for (int i=0; i<getListaDetallesProforma().size();i++ ){
            
            BeanProformaDetalle det = (BeanProformaDetalle) getListaDetallesProforma().get(i);
            det.subTotal();
            this.totalProformaPago = this.totalProformaPago + det.getSubTotal();
            
           //this.subTotal =  Math.round(subTotal);
        
        }
    
    
    }
    
    public void agregarDetalle(BeanProformaDetalle detalle){
        
        getListaDetallesProforma().add(detalle);
    
    
    
    }
    
    public void eliminarDetalle(BeanProformaDetalle det){
        
        this.getListaDetallesProforma().remove(det);  
    
    
    }

    /**
     * @return the idProforma
     */
    public long getIdProforma() {
        return idProforma;
    }

    /**
     * @param idProforma the idProforma to set
     */
    public void setIdProforma(long idProforma) {
        this.idProforma = idProforma;
    }

    /**
     * @return the fecha
     */
    public Date getFecha() {
        return fecha;
    }

    /**
     * @param fecha the fecha to set
     */
    public void setFecha(Date fecha) {
        this.fecha = fecha;
    }

    /**
     * @return the tipoDocumento
     */
    public String getTipoDocumento() {
        return tipoDocumento;
    }

    /**
     * @param tipoDocumento the tipoDocumento to set
     */
    public void setTipoDocumento(String tipoDocumento) {
        this.tipoDocumento = tipoDocumento;
    }

    /**
     * @return the nroDocumento
     */
    public String getNroDocumento() {
        return nroDocumento;
    }

    /**
     * @param nroDocumento the nroDocumento to set
     */
    public void setNroDocumento(String nroDocumento) {
        this.nroDocumento = nroDocumento;
    }

    /**
     * @return the razonSocial
     */
    public String getRazonSocial() {
        return razonSocial;
    }

    /**
     * @param razonSocial the razonSocial to set
     */
    public void setRazonSocial(String razonSocial) {
        this.razonSocial = razonSocial;
    }

    /**
     * @return the nombres
     */
    public String getNombres() {
        return nombres;
    }

    /**
     * @param nombres the nombres to set
     */
    public void setNombres(String nombres) {
        this.nombres = nombres;
    }

    /**
     * @return the tipoComprobante
     */
    public String getTipoComprobante() {
        return tipoComprobante;
    }

    /**
     * @param tipoComprobante the tipoComprobante to set
     */
    public void setTipoComprobante(String tipoComprobante) {
        this.tipoComprobante = tipoComprobante;
    }

    /**
     * @return the listaDetallesProforma
     */
    public List getListaDetallesProforma() {
        return listaDetallesProforma;
    }

    /**
     * @param listaDetallesProforma the listaDetallesProforma to set
     */
    public void setListaDetallesProforma(List listaDetallesProforma) {
        this.listaDetallesProforma = listaDetallesProforma;
    }

    /**
     * @return the totalProformasDetalle
     */
    public int getTotalProformasDetalle() {
        this.totalProformasDetalle = this.getListaDetallesProforma().size();
        
        return totalProformasDetalle;
    }

    /**
     * @param totalProformasDetalle the totalProformasDetalle to set
     */
    public void setTotalProformasDetalle(int totalProformasDetalle) {
        this.totalProformasDetalle = totalProformasDetalle;
    }

    /**
     * @return the subTotal
     */
    public double getSubTotal() {
        return subTotal;
    }

    /**
     * @param subTotal the subTotal to set
     */
    public void setSubTotal(double subTotal) {
        this.subTotal = subTotal;
    }

    /**
     * @return the totalProformaPago
     */
    public double getTotalProformaPago() {
        return totalProformaPago;
    }

    /**
     * @param totalProformaPago the totalProformaPago to set
     */
    public void setTotalProformaPago(double totalProformaPago) {
        this.totalProformaPago = totalProformaPago;
    }

    /**
     * @return the igv
     */
    public double getIgv() {
        return igv;
    }

    /**
     * @param igv the igv to set
     */
    public void setIgv(double igv) {
        this.igv = igv;
    }

    /**
     * @return the afectoDetraccion
     */
    public boolean isAfectoDetraccion() {
        return afectoDetraccion;
    }

    /**
     * @param afectoDetraccion the afectoDetraccion to set
     */
    public void setAfectoDetraccion(boolean afectoDetraccion) {
        this.afectoDetraccion = afectoDetraccion;
    }
    
    
    
    
    
    
    
    
    
}
